命令行参数的java ArrayIndexOutOfBoundsException
我有以下代码片段:
class CMD{
public static void main(String[] s){
String[] spt = s[0].split(".");
System.out.println(spt[0]);
}
}
要执行程序,我使用以下命令:
java CMD Test.java
我想程序应该打印Test
,但我得到了ArrayIndexOutOfBoundsException
为什么?
# 1 楼答案
问题是你正在“分裂”在正则表达式中表示“任意字符”。因此,虽然“任意字符”可以是分隔符,但分割不会返回实际值。(我很惊讶它既不返回空字符串,也不返回几个空字符串,但这是另一回事。)
如果你逃过了“魔戒”使用反斜杠(然后按字符串文本形式转义反斜杠)可以:
另一种选择(对于这个小程序来说,这是一个巨大的杀伤力,但在现实世界的应用程序中很有用)是使用Guava及其^{} 类:
# 2 楼答案
使用以下选项,你会得到答案
java CMD“Test.java”